Hand held devices with a small physical display must often show a virtual stored or computed contents view that is larger than the screen view of the physical display. Only a portion of the virtual display can be shown at any given time within the screen view, thus requiring an interactive process of view navigation that determines which particular portion of the virtual display is shown. This process must allow the user to scroll the entire virtual display. Various methods have been used to control view navigation, including touch screen gestures, keyboards, joysticks, voice commands, rotational and movement sensors, and visual gestures. Touch screen gestures, including single-touch and multi-touch gestures (also called “touch commands”), are today's most popular user interface in hand held devices to navigate (or “scroll”) the display as well as to activate numerous functions and links.
Touch screen gestures normally require cumbersome, two-hand operation as the user holds the device with one hand and performs the gesture with the other. These touch gestures may cause unhealthy ergonomic strains on users, particularly when the user attempts to perform a single hand touch gesture. Even if the user is somehow able to perform touch commands with only one hand, the fingers that touch the screen are still always in the way, obstructing the screen view. Touch screen gestures often cause unintended activation of links that may be present on the screen during scrolling, and result in fingerprints and dirt being left on the screen. When the virtual display size is much larger than the screen size, many repeated touch screen commands are necessary for scrolling the contents.
A promising alternative is a view navigation system based on motion, which allows the users to scroll the display using only one hand and without obscuring the screen view by the fingers that are used for touch commands. In this disclosure, the term ‘motion’ refers to device motion that can be translated into a rotation (or tilt) change relative to a given baseline. This view navigation system of a mobile device may utilize a set of rotation and movement sensors including accelerometers, gyroscopes, tilt sensors, camera tilt detectors, magnetic sensors, multiple Infrared camera rotation sensors, as well as a combination of different sensor types.
An early motion-based view navigation system is disclosed in my U.S. Pat. Nos. 6,466,198 and 6,933,923 which are incorporated by reference herein in their entirety. These patents have been commercialized under the trade name “RotoView” and their development has been chronicled online at http://www.rotoview.com. The “RotoView” system is well adapted to navigate the device's screen view across an arbitrarily large contents view.
One challenge in motion-based view scrolling is the need to change scrolling speed or the scrolling distance dynamically when the contents view is significantly larger than the screen view. Mobile devices often display contents views that fit the height or the width of the screen view, so that scrolling is constrained to the horizontal or vertical direction. In mobile web browsing, scrolling is preferably constrained vertically, often resulting with a contents view with a height that is much larger than the screen view's height.
During motion-based view scrolling, scrolling follows movements and tilts in accordance with currently selected scrolling control parameters. It would be beneficial for the user to be able to modify the scrolling speed or the scrolling distance during the scrolling operation without the use of touch commands, or to have automatic modification of the scrolling control parameters to fit the current viewing condition.
It should be noted that the user gains the best viewing experience when the screen surface is held perpendicular to her eyes. An often encountered challenge in motion-based view scrolling system is the viewing quality experienced during the tilting of the device, when the device is held at an oblique angle to the line of sight.
Therefore, it would be desirable to provide methods and systems that can reduce or eliminate the above deficiencies and improve the user's experience during motion-based view scrolling. Such methods should also reduce the cognitive burden on the user and produce a more efficient user interface that is intuitive and easy to use.